package web.fabrimind.mwm.service;

import java.util.List;
import web.fabrimind.mwm.domain.MaterialInventory;

/**
 * 物料库存Service接口
 * 
 * @author ruoyi
 * @date 2025-03-28
 */
public interface IMaterialInventoryService 
{
    /**
     * 查询物料库存
     * 
     * @param inventoryId 物料库存主键
     * @return 物料库存
     */
    public MaterialInventory selectMaterialInventoryByInventoryId(Long inventoryId);

    /**
     * 查询物料库存列表
     * 
     * @param materialInventory 物料库存
     * @return 物料库存集合
     */
    public List<MaterialInventory> selectMaterialInventoryList(MaterialInventory materialInventory);

    /**
     * 新增物料库存
     * 
     * @param materialInventory 物料库存
     * @return 结果
     */
    public int insertMaterialInventory(MaterialInventory materialInventory);

    /**
     * 修改物料库存
     * 
     * @param materialInventory 物料库存
     * @return 结果
     */
    public int updateMaterialInventory(MaterialInventory materialInventory);

    /**
     * 批量删除物料库存
     * 
     * @param inventoryIds 需要删除的物料库存主键集合
     * @return 结果
     */
    public int deleteMaterialInventoryByInventoryIds(Long[] inventoryIds);

    /**
     * 删除物料库存信息
     * 
     * @param inventoryId 物料库存主键
     * @return 结果
     */
    public int deleteMaterialInventoryByInventoryId(Long inventoryId);

    /**
     * 查询物料列表（不分页）
     */
    List<MaterialInventory> selectMaterialList(MaterialInventory materialInventory);

    /**
     * 查询仓库列表（不分页）
     */
    List<MaterialInventory> selectWarehouseList(MaterialInventory materialInventory);

    /**
     * 查询库位列表（不分页）
     */
    List<MaterialInventory> selectLocationList(MaterialInventory materialInventory);

    /**
     * 查询批次列表（不分页）
     */
    List<MaterialInventory> selectBatchList(MaterialInventory materialInventory);
}
